package AnalizadorSintactico;

import java.util.ArrayList;

import javax.swing.tree.DefaultMutableTreeNode;

public class UnidadCompilacion {

	private Paquete paquete;
	private ArrayList<Importacion> importaciones;
	private DeclaracionDeClaseOInterfaz declaracionClaseInterfaz;

	/**
	 *
	 * @param paquete
	 * @param importaciones
	 * @param declaracionClaseInterfaz
	 */
	public UnidadCompilacion(Paquete paquete,
			ArrayList<Importacion> importaciones,
			DeclaracionDeClaseOInterfaz declaracionClaseInterfaz) {
		this.paquete = paquete;
		this.importaciones = importaciones;
		this.declaracionClaseInterfaz = declaracionClaseInterfaz;
	}



	public DeclaracionDeClaseOInterfaz getDeclaracionClaseInterfaz() {
		return declaracionClaseInterfaz;
	}



	public void setDeclaracionClaseInterfaz(
			DeclaracionDeClaseOInterfaz declaracionClaseInterfaz) {
		this.declaracionClaseInterfaz = declaracionClaseInterfaz;
	}



	/**
	 *
	 * @param paquete
	 * @param declaracionClaseInterfaz
	 */
	public UnidadCompilacion(Paquete paquete,
			DeclaracionDeClaseOInterfaz declaracionClaseInterfaz) {
		this.paquete = paquete;
		this.declaracionClaseInterfaz = declaracionClaseInterfaz;
	}

	/**
	 *
	 * @param importaciones
	 * @param declaracionClaseInterfaz
	 */
	public UnidadCompilacion(ArrayList<Importacion> importaciones,
			DeclaracionDeClaseOInterfaz declaracionClaseInterfaz) {
		this.importaciones = importaciones;
		this.declaracionClaseInterfaz = declaracionClaseInterfaz;
	}

	public DefaultMutableTreeNode getSubArbol() {
		DefaultMutableTreeNode nodo = new DefaultMutableTreeNode(this);
		if (paquete != null) {
			DefaultMutableTreeNode pkgNodo = new DefaultMutableTreeNode(
					"Paquete:");
			pkgNodo.add(paquete.getSubArbol());
			nodo.add(pkgNodo);
		}
		if (importaciones != null) {
			DefaultMutableTreeNode impNodo = new DefaultMutableTreeNode(
					"Declaraciones de importacion");
			for (Importacion i : importaciones) {
				impNodo.add(i.getSubArbol());
			}
			nodo.add(impNodo);
		}
		if (declaracionClaseInterfaz != null) {
			nodo.add(declaracionClaseInterfaz.getSubArbol());
		}
		return nodo;
	}

	@Override
	public String toString() {
		String cadena = "Unidad De Compilacion: ";
		return cadena;
	}

}
